package com.css.fxfzdzzh.modules.eqLandslide.count.service;

import com.css.fxfzdzzh.base.response.RestResponse;
import com.css.fxfzdzzh.modules.eqLandslide.count.entity.*;
import com.css.fxfzdzzh.modules.eqLandslide.count.param.LargeScreenParam;
import com.css.fxfzdzzh.modules.eqLandslide.count.param.TaskModelParam;
import com.css.fxfzdzzh.modules.eqLandslide.count.vo.StatisticsAreaVO;
import com.css.fxfzdzzh.modules.eqLandslide.count.vo.SurfaceRuptureZoneVo;
import com.css.fxfzdzzh.modules.evaluate.entity.CountAreaResult;
import org.springframework.http.HttpHeaders;
import org.springframework.web.multipart.MultipartFile;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Description: fxfzdzzh
 * @Author: lhl
 * @CreateDate: 2023/2/15 11:23
 */
public interface EqLandslideService {
    RestResponse count1(DzzhModelCcfx entity);
    RestResponse count4(DzzhModelLoessPlateau entity);
    RestResponse count2(DzzhModelExponential entity);
    RestResponse count3(DzzhModelLogisticGrowth entity);
    RestResponse count5(DzzhModelNewmark entity) throws Exception;

    Map<String,List<Map<String,String>>> getDataBySlopeVersion(String geom,String version);

    RestResponse getDzzhTaskModel(String taskId);

    RestResponse getTaskModelVOPage(TaskModelParam param, int curPage, int pageSize);

    RestResponse getTaskModelDetail(String taskId, String modelType);

    void delDzzhTaskModel(String dtmId);

    void updateDzzhTaskModel1(String dtmId, String taskId, String tab);

    void updateDzzhTaskModel2(String dtmId, String flag, String taskId);

    RestResponse queryAllLithologyByVersionCode(Map<String,Object> param);

    List<DzzhResultCcfx> getDataByTaskId1(String taskId, String proExceed);
    List<DzzhResultLoessPlateau> getDataByTaskId2(String taskId, String proExceed);
    List<DzzhResultExponential> getDataByTaskId3(String taskId, String dzIntensity);
    List<DzzhResultLogisticGrowth> getDataByTaskId4(String taskId, String dzIntensity);
    List<DzzhResultNewmark> getDataByTaskId5(String taskId, String proExceed);

    List<String> getDataByDzIntensityOfDpzs(String dzIntensity);
    //按省统计危险性面积（【地震滑坡-逻辑斯蒂模型】分析评估结果）
    RestResponse countResultAreaByProvince(String taskId,String modelType);
    //按市统计危险性面积（【地震滑坡-逻辑斯蒂模型】分析评估结果）
    RestResponse countResultAreaByCity(String taskId,String modelType);
    //保存统计危险性面积结果
    public void saveDzzhCountAreaResultList(List<DzzhCountAreaResult> dzzhCountAreaResultList);
    //任务ID删除统计危险性面积结果
    public void deleteDzzhCountAreaResultByTaskId(String taskId,String type,String modelId);
    //查询统计数据集表名
    public String getResultLayerNameParams(String modelType,String taskId,String modelId,String intensity,String pga);

    RestResponse getTaskModelDetailMil(String taskId, String dtmId, String modelType);

    List<CountAreaResult> getCountAreaResult();

    HashMap<String,Object> largeScreen(LargeScreenParam param);


    List<SurfaceRuptureZoneVo> getSurfaceRuptureZone();


    RestResponse uploadSingleBvInformation(MultipartFile file) throws Exception;

    List<StatisticsAreaVO> getStatisticsArea(String intensity,String type,String modelId,String taskId,String modelType);

    Map<String,List<StatisticsAreaVO>> getStatisticsAreaForExport(String intensity,String modelId,String taskId,String modelType);

    RestResponse countResultAreaByCounty(String taskId, String modelType);

    RestResponse parseShp(String fileId,String taskId) throws Exception;

    RestResponse countOtherResultAreaByProvince(String taskId, String modelType);

    RestResponse countOtherResultAreaByCity(String taskId, String modelType);
}
